1 REM*ARTILLERY 64 BY ROGER D. BURGE, #2667, TPUG, TORONTO, ONTARIO, CANADA 9 POKE45,147:POKE46,32:POKE51,64:POKE52,38:POKE55,64:POKE56,38:CLR:POKE53272,27 10 GOSUB5590:GOSUB8050 70 GOSUB2890:POKE679,.:SYSCX:W=(D*RND(.)):W=W/D:R=INT(D*RND(.)+U):IFR=UTHENW=-W 130 G=9.8:H=.04:T=.:VX=.:VY=.:X=.:Y=.:R=INT(D*RND(.)+U):LP=.:A=45:V=20:C$="":IFPL=DTHENLP=36:C$="" 250 RR=(RND(.)):R=INT(D*RND(.)+U):IFRR>.2THENRR=.2 310 GOSUB4630:POKE56325,58:POKE782,-(PL=U) 370 SYS820:JC=PEEK(JS):IFJC=4THENA=A+U 430 IFJC=DTHENA=A-U 490 IFA<.THENA=. 550 IFA>90THENA=90 610 IFJC=UTHENV=V+U 670 IFJC=TRTHENV=V-U 730 IFVFTTHENV=FT 850 PRINTC$""SPC(LP)" "SPC(LP)RIGHT$(STR$(A),D):PRINTC$""SPC(LP)" "SPC(LP)RIGHT$(STR$(V),D):IFJC=FTHENA=(null)/180*A:GOTO1150 1030 IFJC=ZTHEN6370 1090 GOTO370 1150 S(PL-U)=S(PL-U)+U:POKESR,WT:POKEK+Z,WT:POKESN,TW:FORI=QTO7STEP-U:POKEVO,I:FORII=.TOSV*TR:NEXT:NEXT:POKEK+Z,68:POKEVO,Q:ONPLGOTO1270,1330 1270 X=X1:Y=Y1+U:XI=X:YI=Y:PC=FNCL(.):S=U:GOTO1390 1330 S=-U:X=X2:Y=Y2+U:XI=X:YI=Y:PC=FNCL(.) 1390 YN=Y-Z:VY=SIN(A)*V:VX=S*(COS(A)*V):FORI=228TO168STEP-U:NEXTI:POKESR,WT 1450 T=T+H:X=XI+VX*T-W*T^D:Y=YI+VY*T-G*T^D:POKESN,ABS(Y*Z):POKESR,SV*-(YN>Y)+WT*-(YNT9THENPOKESR,.:GOTO2410 1690 PC=PK:IFY<.THENPOKESR,.:GOTO2170 1750 IFPEEK(PK)<>BSTHENPOKESR,.:GOTO1930 1810 POKEPK,B:GOTO1450 1930 IFPEEK(PK)=233THENPOKEPK,92:H1=H1+U:H=U:PL=U:GOTO2710 1990 IFPEEK(PK-FT)=233THENPOKEPK-FT,92:H1=H1+U:H=U:PL=U:PK=PK-FT:GOTO2710 2050 IFPEEK(PK)=223THENPOKEPK,92:H2=H2+U:H=U:PL=D:GOTO2710 2110 IFPEEK(PK-FT)=223THENPOKEPK,92:H2=H2+U:H=U:PL=D:PK=PK-FT:GOTO2710 2170 IFY>24THEN2410 2230 POKESN,TW:POKESR,WT:KK=PEEK(PK):POKEPK,BS:POKEPK,KK:POKEPK,BS:POKEKP,KK:POKEPK,BS:POKEPK,KK:POKEPK,BS:POKEPK,KK 2410 FORI=UTO50:NEXT:POKESR,.:IFPL=UTHENPL=D:GOTO2590 2530 IFPL=DTHENPL=U 2590 PRINT""SPC(LP)" "SPC(LP)" ":IFH=UTHENH=.:GOTO6370 2650 GOTO130 2710 POKEK+F,WT:POKESN,D:POKESR,WT:FORI=QTO.STEP-U:POKEVO,I:FORII=.TOQ:POKEPK+K,II:FORT=.TOSV:NEXT:NEXT:NEXT:POKESR,.:POKEVO,Q:POKEPK,BS:POKEK+F,68:FORI=UTOWT:NEXT:GOTO2410 2890 POKE56325,255:PRINT"[147][206] "SPC(34)" [205]";:PRINT"[193] "SPC(34)" [193]";:POKE679,TW:SYSCX:R=INT(Z*RND(.)+U):FORY=.TOR-U:FORX=.TO11:POKEFNCL(.),224:NEXTX:NEXTY:Y1=Y:X1=INT(4*RND(.)+U):X=X1:POKEFNCL(.)+K,D:POKEFNCL(.),223:FORY=.TOF:FORX=TWTO27 3250 POKEFNCL(.),BL:NEXTX:NEXTY:R=INT(Z*RND(.)+U):FORY=.TOR-U:FORX=28TOT9:POKEFNCL(.),224:NEXTX:NEXTY:Y2=Y:X2=INT(3*RND(.)+35):X=X2:POKEFNCL(.)+K,Z:POKEFNCL(.),233:P1=INT(TR*RND(.)+U):P1=P1+14:P2=INT(TR*RND(.)+U):P2=25-P2:I=INT(D*RND(.)+U) 3490 IFI=UTHENL1=225:GOTO3610 3550 L1=254 3610 I=INT(D*RND(.)+U):IFI=UTHENL2=97:GOTO3730 3670 L2=252 3730 X=P1:Y=Z:POKEFNCL(.),L1:FORX=P1+UTOP2-U:Y=Z:POKEFNCL(.),BL:NEXTX:X=P2:POKEFNCL(.),L2:FORY=7TOSV:RR=INT(Z*RND(.)+U):IFRR=UTHENA1=P1+D:L1=254 3970 IFRR=2THENA1=P1+U:L1=254 4030 IFRR>DTHENA1=P1:L1=225 4090 RR=INT(Z*RND(.)+U):IFRR=UTHENA2=P2-D:L2=252 4150 IFRR=DTHENA2=P2-U:L2=252 4210 IFRR>DTHENA2=P2:L2=97 4270 IFA2DTHENW=D 4870 WD=240:WH=INT(ABS(W*80)):IFWH>QTHENWH=Q 4930 IFW>.THEN5110 4990 X=PX:Y=PY:POKEFNCL(.),103:Y=Y+U:POKEFNCL(.),103:POKEFNCL(.)+U,104:GOTO5230 5110 X=PX:Y=PY:POKEFNCL(.),103:Y=Y+U:POKEFNCL(.),102:POKEFNCL(.)+U,BS 5230 PRINT""SPC(20)"[152] ";:WF=INT(ABS(W*80)):W$=RIGHT$(STR$(WF),2):WF=255-(WF*1.55+TW):PRINT""SPC(14)"WIND: "W$" KPH":RETURN 5410 H1$="00"+RIGHT$(STR$(H1),LEN(STR$(H1))-U):H1$=RIGHT$(H1$,TR):H2$="00"+RIGHT$(STR$(H2),LEN(STR$(H2))-U):H2$=RIGHT$(H2$,TR):PRINT"[152]"H1$SPC(BS)H2$"":RETURN 5590 PRINT"[147]":POKE53281,1:POKE53280,1:DEFFNCL(R)=1024.5+INT(24.5-Y)*FT+X:X=RND(-TI):Y=X:B=46:U=1:FT=40:K=54272:BS=32:SN=K+U:BL=160:Z=6:D=2:VO=K+24:SR=K+4:WT=129:SV=17:T9=39:TW=12:F=5:JS=251:TR=3:Q=15:PL=U 5830 DIMA(U),S(U):CX=49152:SP=53248:POKESP+21,.:POKESP+28,.:POKESP+16,.:POKESP+29,.:FORT=T9TO45:POKESP+T,TW:NEXT:FORT=UTO13STEPD:POKESP+T,50:NEXT:FORT=.TOZ:POKE2040+T,153+T:NEXT:FORT=.TOZ:POKESP+T*D,104+T*24:NEXT:FORT=KTOK+24:POKET,.:NEXT:POKEVO,Q:POKEK+F,68:POKEK+Z,68 6190 FORT=CXTO49209:READA:POKET,A:NEXT:FORT=820TO891:READA:POKET,A:NEXT:RETURN 6370 GOSUB5410:GOSUB7330:FORT=.TO500:NEXT:POKESP+23,127:PRINT"[147][144]"SPC(11)"ACCURACY RATINGS:":PRINT""SPC(10)" PLAYER 1 = "A$(.)"% ":PRINT""SPC(10)" PLAYER 2 = "A$(U)"% ":A$="":PRINTA$"[144][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]" 6670 PRINTA$"[221] OPTIONS: [221]":PRINTA$"[221] [221]":PRINTA$"[221] [211]1 : CONTINUE GAME [221]":PRINTA$"[221] [221]":PRINTA$"[221] [211]3 : NEW GAME [221]":PRINTA$"[221] [221]" 6850 PRINTA$"[221] [211]5 : QUIT [221]":PRINTA$"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]":PRINTSPC(17)"[151]SCORES":A$="":POKE198,.:PRINTSPC(TW)" PLAYER 1 = "H1$"[160]":PRINTSPC(TW)" PLAYER 2 = "H2$" " 7030 GETA$:IFA$=""THEN7030 7090 IFA$="[133]"THENPOKESP+23,.:GOTO70 7150 IFA$="[134]"THENRUN 7210 IFA$="[135]"THEN10870 7270 GOTO7030 7330 IFS(.)=.THENA(.)=.:GOTO7450 7390 A(.)=H1*100/S(.) 7450 IFS(U)=.THENA(U)=.:GOTO7570 7510 A(U)=H2*100/S(U) 7570 FORT=.TOU:IFINT(A(T))=A(T)THEN7810 7630 AV=A(T)-INT(A(T)):A$(T)="000"+MID$(STR$(INT(A(T))),D)+".":A$(T)=RIGHT$(A$(T),4):Q$=LEFT$(STR$(AV),TR)+"00":Q$=MID$(Q$,TR):A$(T)=A$(T)+LEFT$(Q$,D):GOTO7990 7810 IFA(T)=100THENA$(T)="100.00":GOTO7990 7870 IFA(T)=.THENA$(T)="000.00":GOTO7990 7930 A(T)=100+A(T):A$(T)="0"+RIGHT$(STR$(A(T)),D)+".00" 7990 NEXT:RETURN 8050 POKESP+23,127:POKESP+21,127:PRINT"[152]@@@@@@@@@@"SPC(20)"@@@@@@@@@@":PRINT"@@@@@@@@@@"SPC(20)"@@@@@@@@@@":PRINT"NEED INSTRUCTIONS? (Y/N)":POKE198,. 8230 GETA$:IFA$=""THEN8230 8290 IFA$="N"THENPOKESP+23,.:RETURN 8350 IFA$="Y"THEN8470 8410 GOTO8230 8470 PRINT"[147]":POKESP+23,.:PRINT"FOR 2 PLAYERS, REQUIRES 2 JOYSTICKS.":PRINT"[151]THE OBJECT OF THIS GAME IS TO LOAD & AIM YOUR ARTILLERY FOR A ";:PRINT"STRIKE AGAINST YOUR OPPONENT ON THE FAR SIDE OF THE MOUNTAIN." 8650 PRINT" CHANGE THE ANGLE OF YOUR FIRE BY PUSHING YOUR JOYSTICK UP OR";:PRINT" DOWN. UP INCREASES THE ANGLE, DOWN DECREASES IT.":PRINT"CHANGE THE AMOUNT OF GUN POWDER USED BYPRESSING THE JOYSTICK "; 8830 PRINT"RIGHT TO INCREASE,LEFT TO DECREASE.":PRINT"YOUR ANGLE READING IS INDICATED ON THE SCREEN BY THIS SYMBOL - [206][146][151].";:PRINT"THE AMOUNT OFPOWDER (IN KILOGRAMS) IS SYMBOLISED BY - [193][146][151]." 9010 PRINT"YOUR SHOT WILL BE AFFECTED BY THE WIND.ITS DIRECTION IS INDICATED";:PRINT" BY THE FLAG AT THE TOP OF THE MOUNTAIN. ITS SPEED ISSHOWN AT THE ";:PRINT"BOTTOM OF THE SCREEN." 9190 PRINTSPC(5)" PRESS SPACE BAR TO CONTINUE. ":POKE198,. 9250 GETA$:IFA$<>" "THEN9250 9310 PRINT"[147][151]WHEN YOUR ANGLE & CHARGE ARE SET, PRESSTHE FIRE BUTTON.":PRINT"PLAYER 1 (RED) USES JOYSTICK #1, PLAYER 2 (BLUE) USES JOYSTICK #2.":PRINT"YOU MAY END THE GAME ANYTIME BY PUSHINGTHE UP ARROW KEY (^[146])." 9490 PRINTSPC(14)" GOOD LUCK!":PRINT" PRESS SPACE BAR TO PLAY ARTILLERY 64 ":POKE198,. 9610 GETA$:IFA$<>" "THEN9610 9670 RETURN:DATA162,.,189,.,4,201,32,208,6:DATA173,167,2,157,.,216:DATA189,.,5,201,32,208,6:DATA173,167,2,157,.,217:DATA189,.,6,201,32,208,6:DATA173,167,2,157,.,218:DATA189,.,7,201,32,208,6:DATA173,167,2,157,.,219 10210 DATA232,208,201,96:DATA185,.,220,41,15:DATA201,7,208,5,162,1,56,176,29:DATA201,13,208,5,162,2,56,176,20:DATA201,11,208,5,162,3,56,176,11:DATA201,14,208,5,162,4,56,176,2:DATA162,.:DATA134,251:DATA185,.,220,41,16 10750 DATA201,.,208,7,169,5,133,251,56,176,10,165,197,201,54,208,4:DATA169,6,133,251,96 10870 POKE198,.:SYS65418:SYS65412:POKESP+21,.:END:PRINT" [147]L[207]"CHR$(34)"X"CHR$(34); 10871 PRINT",8":POKESP+23,.:POKE198,5:POKE631,13:POKE632,82:POKE633,85:POKE634,78 10872 POKE635,13:END